package com.osce.common.core.entity.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.osce.common.annotation.Excel;
import com.osce.common.core.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.util.Date;

/**
 * 军人用户信息扩展表对象 sys_military_user
 *
 * @author admin
 * @since 2024-11-02
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
@ToString
@EqualsAndHashCode(callSuper = true)
public class SysMilitaryUser extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 用户ID（与sys_user的user_id关联）
     */
    private Long userId;

    /**
     * 民族
     */
    @Excel(name = "民族")
    @ApiModelProperty("民族")
    private String nation;

    /**
     * 籍贯
     */
    @Excel(name = "籍贯")
    @ApiModelProperty("籍贯")
    private String nativePlace;

    /**
     * 入伍时间
     */
    @Excel(name = "入伍时间")
    @ApiModelProperty("入伍时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date enlistmentTime;

    /**
     * 入党(团)时间
     */
    @Excel(name = "入党(团)时间")
    @ApiModelProperty("入党(团)时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date partyJoiningTime;

    /**
     * 入伍地
     */
    @Excel(name = "入伍地")
    @ApiModelProperty("入伍地")
    private String enlistmentPlace;

    /**
     * 学历ID
     */
    @Excel(name = "学历", dictType = "basic_education_dict")
    @ApiModelProperty("学历ID")
    private Integer educationId;

    /**
     * 学位ID
     */
    @Excel(name = "学位", dictType = "basic_degree_dict")
    @ApiModelProperty("学位ID")
    private Integer degreeId;

    /**
     * 血型
     */
    @Excel(name = "血型", dictType = "basic_blood_type_dict")
    @ApiModelProperty("血型")
    private String bloodType;

    /**
     * 人员类别（如 1军官、2文员、3战士）
     */
    @Excel(name = "人员类别", dictType = "basic_personnel_category_dict")
    @ApiModelProperty("人员类别")
    private Integer personnelCategoryId;

    /**
     * 保障卡号
     */
    @Excel(name = "保障卡号")
    @ApiModelProperty("保障卡号")
    private String securityCardNo;

    /**
     * 军人证件号码
     */
    @Excel(name = "军人证件号码")
    @ApiModelProperty("军人证件号码")
    private String militaryIdNo;

    /**
     * 总支
     */
    @Excel(name = "总支")
    @ApiModelProperty("总支")
    private String organizationalCategory;

    /**
     * 部职别
     */
    @Excel(name = "部职别")
    @ApiModelProperty("部职别")
    private String dutyTitle;
}